1. Field of the Invention
The field of the present invention relates to sampling signals, such as audio signals, and mixing together these signals as they are provided by various input sources. Specifically, the present invention relates to signal mixing and converting input signals from one time domain to another.
2. Description of Related Art
Modern computer systems, especially personal computers (PCs), are more commonly being used for signal processing. Signal processing comes into play in multimedia applications of a computer system. Multimedia applications typically include means for processing audio signals, video or image signals, analog signals, or other forms of information carrying signals. Conventional techniques are well known for processing analog signals using sampling. Sampling is the act of measuring a signal at certain time intervals. In some personal computer (PC) multimedia systems, these signal samples are converted to a digital form and further processed as digital signals.
A typical multimedia computer system supports signal inputs from a plurality of sources. These multiple source inputs are typically combined into a single or fewer number of signal outputs using a signal mixer. In general, two types of signal mixers exist in the prior art: 1) analog mixers, and 2) digital mixers. Both analog and digital mixers perform mixing using summation. All input signals are added and the resulting output signal is the sum of all inputs. The vast majority of conventional PC multimedia computer systems use analog mixing for combining signals from multiple sources. Digital mixing, however, has several advantages over analog mixing. In a typical PC multimedia environment, most signals, such as audio signals, are already in a digital form. For example, high quality 16-bit audio signals may be provided by a CD ROM player or as 8-bit sampled sound effects from computer entertainment software packages. Using a digital mixer, there is no need for additional circuitry to convert the digital signals to an analog form. Another advantage of digital mixing is the production of better quality digital signals. Electrical component tolerances have little or no effect in digital circuits, whereas analog signals are usually susceptible to component tolerances. In addition, digital signals are much more tolerant to electrical noise. This advantage of digital mixers is of significant importance in a PC environment where high speed digital switching can easily interfere with analog circuits. Yet another advantage of digital mixing is that digital circuits can be implemented more easily using ASIC technology. These implementations reduce the size, chip count, and power consumption of the signal mixing circuitry.
In spite of the advantages of using digital mixers in multimedia computer systems, several problems have been encountered in prior art systems using multiple digital signals and digital mixers. First, conventional systems require that digital input signals and the output signal generated by the digital mixer must be of the same sampling rate. This limitation is significant in multimedia systems where various signals may originate from sources having an arbitrary sampling rate. Secondly, converting from one sampling rate to a different sampling rate can generate aliasing. Aliasing causes shadow signals to appear when the sampling frequency is less than twice the bandwidth of the input signal. Thirdly, the ratio between the maximum output signal level and the present signal level (headroom) is limited in digital signals. For example, summing two 16-bit digital signals will result in a 17-bit signal. Thus, the input signals must be limited or output data will be lost. Finally, the Signal to Noise Ratio (SNR) deteriorates by 6 dB every time the input signal level is reduced by half. Thus, it is important to select the correct number of bits for representing the digital signal given the anticipated dynamic range of the input signals.
Thus, a better digital mixer for combining digital input signals and performing sample rate conversion is needed.